package 华为OD机试B卷复用题.基础题;

import utils.MyUtil;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;

public class HJ16_找最小数 {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner in = new Scanner(new File("src/main/java/华为OD机试B卷复用题/基础题/input/16.txt"));
        MyUtil.START();
        Solution(in);
        MyUtil.END();
    }

    // 单调栈
    static void Solution(Scanner in) {
        String s = in.nextLine();
        int K = in.nextInt();

        Deque<Integer> deque = new LinkedList<>();
        for (int i = 0; i < s.length(); i++) {
            int now = s.charAt(i) - '0';
            while (!deque.isEmpty() && K > 0 && now < deque.peekLast()) {
                deque.pollLast();
                K--;
            }
            deque.addLast(now);
        }

        // 注意：如果还没删除够K个数，直接从尾部删除。
        for (int i = 0; i < K; ++i) {
            deque.pollLast();
        }

        // 拼接输出结果，开头有 0 的话全部去掉，用 String 输出 避免结果位数过长。
    }
}
